package cn.zvo.translate.service.core.util;

import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONArray;

/**
 * JSON 工具类
 */
public class JSONUtil extends com.xnx3.json.JSONUtil{
	
	/**
	 * 将一个 JSONArray 数组，按照文字长度进行拆分。
	 * 比如传入的 array 数组的文字长度是6200，传入的 size 是2000，那么就是将 array 数组拆分为多个长度不超出2000的数组返回。
	 * 注意，这个长度是指 array.toString() 后的长度，也就是包含了 [""] 这种符号的长度
	 * @param array 要被拆分的数组，其内都是String类型
	 * @param size 要被拆分的长度
	 * @return 被拆分后的数组列表
	 * @author 刘晓腾
	 */
	public static List<JSONArray> split(JSONArray array, int size) {
		List<JSONArray> list = new ArrayList<JSONArray>();
		// 数组长度小于size，直接进行返回
		if(array.toString().length() <= size) {
			list.add(array);
		}else {
			// 转换成String
			String arrayStr = array.toString().trim().substring(1, array.toString().length() - 1);

			// 判断size和字符串长度的差值，如果为1或者2，就直接拆成两段
			if (array.toString().length() - size <= 2) {
				size = size - 4;
				// 拆两段
				String str1 = arrayStr.substring(0, arrayStr.lastIndexOf("\",\"")+1);
				String str2 = arrayStr.substring(arrayStr.lastIndexOf("\",\"")+2);
				list.add(JSONArray.fromObject("[" + str1 + "]"));
				list.add(JSONArray.fromObject("[" + str2 + "]"));
			} else {
				size = size - 2;
				// 拆多段
				int index = 0;
				while (index - arrayStr.length() < 0) {
					// 按照指定大小拆一段
					String s = "";
					if ((index+size) - arrayStr.length() >= 0) {
						s = arrayStr.substring(index);
					} else {
						s = arrayStr.substring(index, (index+size));
					}
					// 结尾长度默认为字符串长度
					int endIndex = s.length();
					// 因为下次开始的第一个字符可能会是逗号，所以下次开始需要+1
					int startNeedAdd = 1;
					// 判断最后一个字符是否为双引号
					if (s.endsWith("\"")) {
//						System.out.println("-------双引号");
						// 判断倒数第二个是否为逗号
						if (s.endsWith("\",\"")) {
							// 删除两个字符
							endIndex-=2;
						} else if (!s.startsWith("\"")) {
							// 如果开头不是引号，需要补一个引号，这就导致会超长，所以结尾就要找指定字符的
							// 找出最后一个指定字符的位置
							int la = s.lastIndexOf("\",\"");
							endIndex = la + 1;
						}
					} else if (s.endsWith("\",")) {
//						System.out.println("-------逗号");
						// 判断是否为逗号，是的话删除一个字符
						endIndex-=1;
					} else {
//						System.out.println("-------都不是");
						// 都不是，那就是内容结尾
						// 找出最后一个指定字符的位置
						int la = s.lastIndexOf("\",\"");
						endIndex = la + 1;
						// 内容超长，endIndex就会变成0，这时需要手动赋值
						if (endIndex <= 0) {
							// 看看是否以引号开头，如果不是，需要拼两个引号
							if (s.startsWith("\"")) {
								// 拼一个引号，-1
								endIndex = s.length() - 1;
							} else {
								// 拼两个引号，-2
								endIndex = s.length() - 2;
							}
							if (!s.endsWith("\"")) {
								// 开始不是逗号了，不能-1
								startNeedAdd = 0;
							}
						}
					}
					// 根据处理的结尾长度进行第二次拆分
					String s2 = "";
					if (endIndex - s.length() > 0 || endIndex - 0 == 0) {
						s2 = s;
						endIndex = endIndex + s2.length();
					} else {
						s2 = s.substring(0, endIndex);
					}
//					System.out.println(s);
					if (!s2.startsWith("\"") && !s2.startsWith(",\"")) {
						// 拼一个引号
						s2 = "\"" + s2;
					}
					if (!s2.endsWith("\"")) {
						// 拼一个引号
						s2 = s2 +"\"";
					}
					// 计算下次循环开始的长度
					index += (endIndex + startNeedAdd);
					// 加到list
					s2 = "[" + s2 + "]";
					try {
						list.add(JSONArray.fromObject(s2));
					} catch (Exception e) {
						// 遇到错误，略过一个字符
						index = index - (endIndex + startNeedAdd) + 1;
					}
				}
			}
		}
		return list;
	}
	
	public static void main(String[] args) {
		String s = "[\"和\",\"回\",\"小\",\"张\",\"是\",\"梦\",\"粤\",\"群\",\"让\",\"评\",\"阅\",\"顶\",\"与 \",\"专区\",\"中年\",\"一样\",\"共 \",\"下载\",\"其他\",\"公布\",\"和 \",\"内核\",\"加密\",\"剪映\",\"单图\",\"博客\",\"发布\",\"在 \",\"吹成\",\"压缩\",\"基于\",\"多图\",\"吗？\",\"墨盒\",\"如果\",\"实现\",\"小林\",\"官网\",\"弄月\",\"应用\",\"归并\",\"开源\",\"是 \",\"快？\",\"整合\",\"攻略\",\"文盘\",\"摸鱼\",\"更多\",\"框架\",\"标题\",\"桥雾\",\"權少\",\"活动\",\"没有\",\"满意\",\"版 \",\"的 \",\"简介\",\"组件\",\"自研\",\"解密\",\"资讯\",\"软件\",\"跳过\",\"退出\",\"连接\",\"问答\",\"项目\",\"顶部\",\"之后的\",\"产品：\",\"不满意\",\"交流群\",\"云计算\",\"公众号\",\"写博客\",\"兼容层\",\"其实非\",\"发布！\",\"发布，\",\"加载中\",\"发音：\",\"基于 \",\"图片）\",\"大前端\",\"属于 \",\"客户端\",\"对照表\",\"官网：\",\"小程序\",\"就等于\",\"对话 \",\"工信部\",\"已发布\",\"年度 \",\"开源 \",\"开源,\",\"很好，\",\"开源豆\",\"微软 \",\"批处理\",\"推荐 \",\"支持？\",\"数据库\",\"有了 \",\"林淮川\",\"框架 \",\"没感觉\",\"浅析 \",\"温安适\",\"灰名单\",\"状态码\",\"生成器\",\"用的时\",\"白嫖 \",\"百小僧\",\"相比，\",\"的飘过\",\"红白机\",\"能代表\",\"编译器\",\"编辑部\",\"经验值\",\"自研 \",\"薯粉1\",\"视频号\",\"谁知道\",\"软件库\",\"金拱门\",\"项目和\",\"飞致云\",\"鬼画符\",\"需要找供应商做\",\"模块化开发方案-\",\"文章 163\",\"文章 2.8\",\"文章 246\",\"文章 402\",\"文章 991\",\"的功能...\",\"开源社区新晋两位 \",\"微服务脚手架 \",\"居然还在维护中... 真是夹缝中生存了\",\"静态类型检查器\",\"增强稳定性和优化内存管理\",\"数据集提供商开源类 \",\"以智能之力，加速媒体生产全自动进程\",\"年更新计划 \",\"用户行为分析模型实践（三）——\",\"前端开发项目或前端开发人员（需驻场、全职开发）\",\"软件（持续更新中）\",\"梦，简书万粉优秀创作者，掘金优秀作者、\",\"问题务必简洁、易懂，不让人产生异议；\",\"开源轻量级前端显示框架\",\"大前端专区\",\"存在拒绝服务漏洞\",\"从立项的时候就是为了提升工作效率的，自然结果就好很多，而且也没人把\",\"正则表达式\",\"等这些产品给我的启发多。信息流，电商，工具，始终是正路，这些炒概念的东西，有几个能成的？\",\"的水分确实大。我到现在都记得，扎克伯格推出元宇宙时，市场上的反应。那时候各大公司都沸腾了，百度，字节跳动，都推出了各自的元宇宙产品，连刘慈欣都出来讨论了，结果呢，一地鸡毛。\",\"进制转换器\",\"自己怎么写字体的？\",\"开源插件化物联网平台，\",\"请不要提与技术无关的问题。\",\"都很猛，搞不好哪天就跟雅虎一样了。\",\"身份验证漏洞\",\"正式发布，\",\"中的图数据 \",\"为打破中美领先，\",\"大数据专区\",\"档案管理系统\",\"是在不同指令集架构\",\"自由开源软件是工程师程序员们送给软件世界的魔法石，谁都可以拥有，但无法据为己有\",\"开源中国首席路人王\",\"这是要灭了\",\"飞翔的土拨鼠\",\"系统上运行\",\"大牛告诉你项目在\",\"赠票来啦！】\",\"每日一博 \",\"这个异常应该怎么解决, \",\"实现的开源时序数据库，尤其关注可扩展性、分析能力和效率，专为云时代的基础设施而设计。 功能 提供可扩展到高可用分布式集群的独立二进制文件 优化处理时序数据的柱状布...\",\"一文教你玩转 \",\"连接云上数仓\",\"的性能相当。但...\",\"观点丨从闭源到开源，我所在的软件研发团队经历了什么？\",\"越来越好了，反观\",\"备12009483号\",\"称已经在日常测试中经历数十\",\"这种不行，\",\"工业互联网操作系统\",\"万人关注\",\"个人主页\",\"为什么比\",\"申请成为机构号\",\"中文社区\",\"从历代 \",\"代码实现\",\"代码对比\",\"保存代码\",\"一键接入\",\"存在任意文件读取漏洞\",\"关于我们\",\"加入我们\",\"前段先锋\",\"厉害了啊\",\"合作伙伴\",\"发帖提问\",\"分页插件\",\"删除片段\",\"发布，在\",\"商店放置\",\"品牌专区\",\"发起讨论\",\"在线工具\",\"太丑啦！\",\"语言黑子还有30秒到达战场\",\"如何在 \",\"大王叫下\",\"夜葬星海\",\"带你玩转\",\"将集成 \",\"别跟疯狗一样，天天在开源社区捣乱\",\"年度报告\",\"开发技能\",\"很不满意\",\"代码编译为本机机器代码，而无需任何运行时开销。 在单线程上，\",\"开源活动\",\"开源治理\",\"开源的 \",\"将代码托管平台迁移到 \",\"得物极光蓝纸箱尺寸设计实践\",\"我只是说\",\"什么是分布式?\",\"技术专区\",\"技术峰会\",\"技术的 \",\"技术贴 \",\"技术问答\",\"我的收藏\",\"或者比 \",\"插入代码\",\"插入图片\",\"我要提问\",\"的商业支持。不用给那些企业操心\",\"投递新闻\",\"百度这个2019年上线的\",\"请输入图片网址（支持\",\"推荐专区\",\"搜索专区\",\"数据同步\",\"是使用 \",\"文章 0\",\"摸鱼生涯\",\"服务就行\",\"全球开源技术峰会，优质议题征集\",\"杭城小刘\",\"最新推荐\",\"架构异同\",\"架构设计\",\"本质就是\",\"查看更多\",\"框架，跟\",\"指定官方社区\",\"工具的大部分主要功能之外，...\",\"没有公网\",\"上增加容器安全的动态扫描\",\"法案约束\",\"消息中心\",\"接活赚钱，技术变现\",\"深圳福田\",\"游戏开发\",\"渲染引擎\",\"开源的文档管理系统\",\"火山引擎\",\"热推博主\",\"你写了什么玩意让你这么自信？\",\"用100\",\"玖伍贰柒\",\"记录一次还算优雅的代码设计\",\"现象级 \",\"开源开发者应免受欧盟 \",\"就是下一代技术潮流，甚至\",\"社区规范\",\"程序人生\",\"竞争的 \",\"空灵农场\",\"竞标报价\",\"习惯使用旧版\",\"精彩评论\",\"加水印效果优化\",\"的数据注入锤炼，是目前\",\"这种人如果在中国 现在应该在开滴滴\",\"综合资讯\",\"盘点这些年稚晖君的\",\"聊一聊 \",\"网络图片\",\"联系我们\",\"已经发布，移动支付 \",\"二维码生成器\",\"华为云开发者联盟\",\"个关键步骤，复制字节跳动一站式数据治理经验\",\"将提供对 \",\"国内很难做这个，浑身上下挂满了敏感词\",\"下如何测试！\",\"许可证是最大赢家\",\"没什么大的改进\",\"实现国产 \",\"课程回顾\",\"语言分支\",\"了，可见一开始立项时，就没有设定太高的目标。我并没有否定\",\"将更易于监控和管理后台应用\",\"转义字符\",\"返回旧版\",\"返回顶部\",\"选择专区\",\"这波天秀\",\"稳如山。不变应万变，半天就上线。\",\"還是原生\",\"如何基于开源 \",\"同步时间字段报错\",\"说--直接内存的使用\",\"打印、打印设计、可视化设计器、报表设计、元素编辑、可视化打印编辑...\",\"非常满意\",\"中国有没有这种牛人？我知道的是35岁之后就不配做程序员了，甚至不配做人了\",\"飞桨专区\",\"项目。与\",\"项目运营\",\"马上入驻\",\"高性能 \",\"鱼了个鱼\",\"作为指令翻译层。...\",\"鲲鹏专区\",\"法案或将破坏开源生态！\",\"快速获得答案的几个建议：\",\"框架差别很大的\",\"发布，连接池软件\",\"软件更新资讯\",\"算法角度刨析 \",\"软件架构专区\",\"一夜之间，我国的各大互联网公司人工智能技术迈向成熟，距离上线仅一步之遥\",\"开源中国社区编辑部\",\"小程序 —— \",\"将来不敢说，就现阶段而言，\",\"墨者实验室更名为墨客实验室\",\"现阶段并不乐观，用户数和创新度都在下滑，\",\"发布，开源字体工具\",\"内容不如旧版多\",\"高性能开源搜索引擎\",\"再有人问你分布式事务，把这篇文章砸过去给他\",\"都很难算作高级语言，只能说是中级语言\",\"程序的兼容层，它基于\",\"网关策略的二三事\",\"支持的更好，\",\"企业研发管理\",\"给问题添加必要的描述，使表达更完整；\",\"更宽松的开源协议，无猫腻，无诱导，不设坑，不忘初心。\",\"商业订阅一直就是收费的,有什么大惊小怪\",\"龙芯中科自研指令集与 \",\"开源,开源项目,开源代码\",\"开源创新大赛\",\"是目前领先的中文开源技术社区。我们传播开源的理念，推广开源项目，为 \",\"谷歌推出与 \",\"平台，也能跨平台\",\"那他們的工程管理還做得挺好的。\",\"这种本身就是\",\"实现动态表单组件，通过拖拽组件到面板即可实现一个表单。支...\",\"纷纷宣布裁员\",\"代码克隆检测\",\"发布会讲稿——产品篇\",\"发布会讲稿——实践篇\",\"的话，那它就不叫\",\"发布，密码管理工具\",\"您使用新版首页的体验如何？\",\"选择发布范围\",\"某小家电企业\",\"这种，而是2006-01-02 15:04:05，不管哪门语言搞这么个玩意，我都喷它\",\"不要贴过多的代码和异常错误信息；\",\"加入学院软件基金会\",\"巨硬：来.\",\"前端框架解读\",\"得物社区计数系统设计与实现\",\"设计语言和 \",\"产品管理不是「听从指挥」，不要再做「废话管理」了！\",\"工具家族中崭新的一个。在几乎涵盖了传统\",\"微信公众号\",\"一般是特别有钱的资本，才需要\",\"张，还能上传 \",\"技术沙龙回顾』揭秘 \",\"博客专家，云\",\"深圳市奥思网络科技有限公司版权所有\",\"发布，优化了 \",\"已发布，企业级 \",\"并没有吹的那么厉害，而且它也不能说明现阶段\",\"生态系统经历大规模现代化改造，7.4 是最常用版本\",\"发布，通用、灵活、高性能的分布式 \",\"开源轻量级 \",\"德国网友在祖父母的地下室发现了 1956 年的传奇电脑\",\"化，并且规范命名方式。然后逐渐废弃现有全局函数。\",\"选择编程语言\",\"说说你的意见和建议\",\"非结构化数据\",\"整理了一些简单好用的开源文件传输工具\",\"支付对接常用的加密方式介绍以及\",\"首席的哥队长\",\"授权。问题在于芯联芯获得\",\"元宇宙，现在又来吹\",\"微信公众号电商系统和\",\"头条号，温安适技术管理之路\",\"买房也用券\",\"中文开源技术交流社区\",\"开源软件,开源硬件,开源网站,开源社区,\",\"开发者提供了一个发现、使用、并交流开源技术的平台\",\"个人资料修改\",\"大家都在搜...\",\"关注技术领域的头条文章\",\"聚合全网技术文章，根据你的阅读喜好进行个性推荐\",\"暂没有未读消息\",\"全部标记为已读\",\"它可以将复杂的信息和多个视角的信息提炼成易于理解的格式，并从网络上学到更多\",\"正式升级为 \",\"协同知识库\",\"生成工具 \",\"资源调度系统设计与实践\",\"开发计划：将在 4.12 发布后启动\",\"付费为爱发电？欧盟 \",\"中国开源创企调查：\",\"的移动端轮播组件 \",\"云原生安全检测器 \",\"发布，在 \",\"毫无疑问会在未来取代 \",\"控制器的初始支持\",\"分布式任务调度平台 \",\"不存在著作权侵权问题\",\"国科础石开源汽车操作系统并公布开源计划\",\"平台支持，成功适配兆芯、海光！\",\"微软公布使用 \",\"浏览器和必应搜索\",\"静态类型检查器，旨在结合动态类型和静态类型的优点，将 \",\"的表现力和便利性与强大...\",\"稳定版发布，\",\"稳定版发布，开源 \",\"更新公告，数学仿真、图形化工具\",\"表格解决方案\",\"存在身份验证绕过漏洞\",\"发布，一个 \",\"在线学习系统 \",\"版本发布——兼容 \",\"办公系统 — 勾股 \",\"发布！新年第一个迭代版本\",\"稳定版发布\",\"发布，多平台游戏引擎\",\"存在解释冲突漏洞\",\"客户端和服务器\",\"串口等流式数据解码库\",\"协议配置，提高成了连接功率和速度\",\"零前端代码通用后台 \",\"开源商城系统 \",\"服务器双重释放漏洞\",\"华为开发者联盟\",\"端实现一个多人数独游戏\",\"通用分析模型\",\"开发技能专区\",\"体验算法套件快速完成水表读数\",\"的四种通信模式\",\"学习】内存安全探秘：变量的所有权、引用与借用\",\"数据库专区\",\"分区分桶新功能\",\"数据库实操\",\"分布式缓存服务\",\"企业版性能更强，稳定性更高\",\"云计算专区\",\"一键式全智能生产制作，设计有生命力的剪辑流程\",\"不仅仅是数据的 \",\"行代码贡献经验，带你了解如何参与\",\"的人脸识别\",\"打造智能语音子系统\",\"的实时机器人聊天应用\",\"让程序开发更轻松\",\"应用，将如何阐释「研发效能管理」？\",\"数据神器 \",\"表数据秒变 \",\"协议原理与应用场景介绍\",\"推荐机构号\",\"腾讯云中间件\",\"微服务架构下路由、多活、灰度、限流的探索与挑战\",\"解密秒杀系统架构：不是所有的秒杀都是秒杀\",\"文章 82\",\"编译与执行-\",\"程序员哆啦\",\"达达前端技术社群：634382181，我是程序员哆啦\",\"社区社区活跃作者，个人网站：\",\"文章 76\",\"一个资深码农，目前专注于架构设计\",\"大前端开发，养了一群布偶猫，打算养布偶猫的开发者加我微信：704568245（备注：开源中国布偶猫）\",\"中国开源项目评选：「优秀国际开源项目中文社区」公布\",\"中国开源项目评选：「最火热中国开源项目社区」获奖项目公布\",\"中国开源项目评选：「中国开源社区健康案例」公布\",\"社区运营你的开源项目？\",\"开发为什么要装一大堆第三方的工具\",\"问题如何解决？\",\"反序列化报错了吗?\",\"分页时报错\",\"如何设置页面的编码为\",\"从技术角度谈谈中国开源现状，由低代码、云原生、开源芯片说起\",\"如何评价给代码“下毒”的 \",\"项目，看看他的技术栈有多强\",\"轻松搭建个人博客\",\"有了这些开源 \",\"库，俺再也不担心 \",\"摸鱼专区回来了！！！\",\"代码格式化\",\"颜色对照表\",\"乱码转换器\",\"我记得龙芯好早就买了\",\"中国区的经营权，他有没有向龙芯展示授权协议，关于地区经营协议等等细节披露。并且龙芯有早期授权的话，在有效期内正常使用，不存在侵权的说法。 不论怎样来说，法律判龙芯没侵权就是最大保证了。\",\"持续关注中\",\"表达式现在已经流行起来了，函数式编程还是很不错的\",\"这语言槽点太多，准确来说是\",\"延续的，这个榜单我表示质疑。\",\"编程语言要解决的是完成需求，而不是装\",\"哈哈512\",\"的话，这东西不好用吧？\",\"本机8.0，生产的好像是7.3\",\"可恶，都怪\",\"没有开源，不然我国自主研发的早上线了\",\"高斯 等基于\",\"魔改的那啥信创产品，跟上跟上！\",\"漫步海边小路\",\"怎么使用命名管道?谢谢\",\"需求由它变，\",\"要这么搞，美军的阿帕奇直升机要不要改名字？\",\"前一段时间吹区块链，\",\"接下来吹什么呢？还不如抖音，拼多多，原神，今日头条，\",\"再黑也没用，国外\",\"年增长了一倍，简洁高效永远是王道，做开发10多年了，经历了各种技术，最后发现好处是给别人，累的却是自己\",\"人无我无，人有我抄\",\"版本 也很好，反正我都只用最新的\",\"用过？ 踩了坑了？\",\"剑神卓不凡\",\"一把年纪还能写代码，也是牛逼\",\"只要别运行\",\"时连带运行一个\",\"框架源码，文档不走任何商业化模式，只会是 \",\"建议把标准库\",\"晒太阳的小猪\",\"百度别做了，免得满屏幕广告\",\"聊聊天会不会把天聊死了。。。\",\"的日期时间格式化不使用业界通俗的\",\"可以升级了\",\"是这样的，看看铺天盖地的宣传，很容易让人产生，\",\"能思考，能替代人工作。事实上，\",\"就只是一个工具类产品，能提高人在某些工作上的效率而已。\",\"发展的成果，我认为\",\"和元宇宙一样，水分太大。\",\"支持稍微差一点，跟\",\"动态表单，\",\"动态表单。基于\",\"是系统活动报告\",\"语言开发。支持\",\"多协议、多类型设备接入与可视化、自动化、告警、规...\",\"投影融合播放软件\",\"多品类多商户小程序\",\"系统需要找人开发\",\"找人做小程序开发。\",\"每周软件推荐\",\"可以模拟执行不同指令集的\",\"软件，它使用修改过的\",\"是一款高性能 \",\"编译器，可将 \",\"的典型加速大约为 10-100 倍或更多，性能通常与 \",\"轻量级标记语法\",\"是轻量的标记语法， 包含许多派生自 \",\"的功能，同时修复了一些使 \",\"语法复杂且难以有效解析的问题。 \",\"的升级版，且 \",\"实现的时序数据库\",\"的现代化数据仓库\",\"实现的现代化实时开源数据仓库。 特性 \",\"社区中，面向用户特别是中小企业实际场景深度...\",\"提问的专区：\",\"找不到结果\",\"带上“什么”、“如何”、“为什么”等开始你的提问\",\"给问题添加必要的补充，使表达更完整\",\"上传后图片显示在这里\",\"请输入代码\",\"您返回旧版的原因是：\",\"页面不好看\",\"操作不方便\",\"实用在线工具\",\"国家反诈中心\",\"开源软件推进联盟\"]";
//		s = "[\"和\",\"回\",\"小\",\"张\",\"是\",\"梦\",\"粤\",\"群\",\"让\",\"评\",\"阅\",\"顶\",\"与 \",\"专区\",\"中年\",\"一样\",\"共 \",\"下载\", \"一夜之间，我国的各大互联网公司人工智能技术迈向成熟，距离上线仅一步之遥一夜之间，我国的各大互联网公司人工智能技术迈向成熟，距离上线仅一步之遥一夜之间，我国的各大互联网公司人工智能技术迈向成熟，距离上线仅一步之遥一夜之间，我国的各大互联网公司人工智能技术迈向成熟，距离上线仅一步之遥一夜之间，我国的各大互联网公司人工智能技术迈向成熟，距离上线仅一步之遥一夜之间，我国的各大互联网公司人工智能技术迈向成熟，距离上线仅一步之遥一夜之间，我国的各大互联网公司人工智能技术迈向成熟，距离上线仅一步之遥一夜之间，我国的各大互联网公司人工智能技术迈向成熟，距离上线仅一步之遥\", \"快速获得答案的几个建议快速获得答案的几个建议\", \"框架差别很大的框架差别很大的框架差别很大的框架差别很大的框架差别很大的框架差别很大的框架差别很大的框架差别很大的框架差别很大的框架差别很大的框架差别很大的框架差别很大的框架差别很大的\"]";
//		System.out.println("原本的数组："+JSONArray.fromObject(s));
//		System.out.println("原本的数组string长度："+JSONArray.fromObject(s).toString().length());
//		System.out.println("原本的数组长度："+JSONArray.fromObject(s).size());
//
//		List<JSONArray> list = split(JSONArray.fromObject(s), 10);
//		System.out.println("原本的数组："+JSONArray.fromObject(s));
//		System.out.println("拆分后的数组："+list);
//		System.out.println("拆分后的数组string长度："+list.toString().length());
//		System.out.println("拆分后的数组长度："+list.size());
//		System.out.println((JSONArray.fromObject(s).toString().length() + (list.size() - 1) + (list.size() * 2)));
		
		JSONArray original = JSONArray.fromObject(s);
		List<JSONArray> split = split(original, 2000);
		
		System.out.println("原本的数组："+JSONArray.fromObject(s));
		for (int i = 0;i<split.size(); i++) {
			System.out.println(i + " 拆分后的数组：" + split.get(i).toString().length());
		}
//		System.out.println(" 拆分后的数组：" + split(JSONArray.fromObject(s), 23));

	}
	
}
